草庐IT

Java创建 map 对象的实例

全部标签

ruby - 如何使用 Rspec Mocks stub 给定类的任何实例

以下代码引发错误:undefinedmethod'any_instance'forString:Classrequire'rspec'RSpec.configuredo|config|config.mock_with:rspecenddescribeStringdoit'stubs'doString.any_instance.stub(:foo).and_return(1)''.foo.shouldeq(1)endend如何将Mocks模块包含到类或对象类中? 最佳答案 any_instance最近被添加到rspec,所以你的例子现

ruby - 如何检查 Ruby 对象的方法?

我想知道是否有一个Ruby方法调用只显示由调用它的Ruby对象定义的方法,而不是它的祖先类定义的所有方法,这就是methods似乎可以。 最佳答案 methods有一个可选的bool参数,它指定是否还列出对象的类及其父类(superclass)的方法,或者只列出对象的单例方法。所以你可以执行obj.methods(false)来只获取定义在obj上的单例方法。如果你想要对象类定义的方法,而不是它的父类(superclass)定义的方法,你可以通过调用对象类的instance_methods(false)来获得它,所以它是obj.cl

ruby - 如何创建匹配所有请求并指向一个资源/页面的 Rails 3 路由?

我有一个需要暂时停止服务的Rails应用程序(Rails3.0)。虽然这是有效的,但我想创建一个新路由,将所有请求定向到单个静态内容。我设置了一个Controller来为我的静态页面提供服务。我试过这样的:match'*'=>'content#holding'和match'*/*'=>'content#holding'匹配通配符路由,如下所述:Rails3routeglobbing没有成功。这可能是一个非常简单的答案,但我想不通。/编辑/忘了说我在routes.rb文件的最顶部确实有这条规则。 最佳答案 Rails需要将url参数绑

ruby-on-rails - 如何从字符串转换为对象属性名称?

我正在尝试将字符串值转换为属于对象的属性名称。例如,在下面的代码中,我需要将column_array中的所有字符串值转换为属性名称。名称"student_identification"、"email"等是我的Student表的实际列名。在实际场景中,column_array将由用户设置(通过勾选复选框)。new_array将替换为csv,因为我希望数据进入csv文件。此刻我真的在以下几行挣扎:new_array我希望将"#{column_array[i]}"转换为属性名称,以便我可以访问数据。defexp_tst@records=Student.find(:all,:condition

ruby-on-rails - rspec 中的实例变量如何工作?

这是MHartl的RubyonRails教程中的一些代码。谁能解释为什么需要实例变量(@user)以及为什么不使用局部变量。另外,既然实例变量应该是类实例中的变量,那么@user是从哪个类实例化的呢?require'spec_helper'describeUserdobefore{@user=User.new(name:"ExampleUser",email:"user@example.com")}subject{@user}it{shouldrespond_to(:name)}it{shouldrespond_to(:email)}end 最佳答案

ruby-on-rails - 在 Ruby 中初始化类实例变量

我正在开发一个小型Rails应用程序,但遇到了ruby​​的OOP模型问题。我有以下简化的类结构。classFooprotected@bar=[]defself.add_bar(val)@bar+=valenddefself.get_bar@barendendclassBaz我现在的问题是,当我在Baz的类定义中调用add_bar时,@bar显然没有初始化,我得到一个错误,提示+运算符是不适用于nil。直接在Foo上调用add_bar不会产生这个问题。为什么会这样,我该如何正确初始化@bar?为了明确我想要什么,我将指出我期望从这些类中获得的行为。Foo.add_bar["a","b"

ruby - 在 Ruby 中使用选项散列快速设置实例变量?

我想使用选项散列作为Ruby中方法的输入,但有没有一种方法可以快速设置所有同名变量(即具有相同的名称)而不是单独设置每个变量?所以不要这样做:classConnectiondefinitialize(opts={})@host=opts[:host]@user=opts[:user]@password=opts[:password]@project=opts[:project]#adnauseum...是否有一个单行代码将散列中的每个传入选项分配给具有相同名称的变量? 最佳答案 definitialize(opts={})opts.

ruby - 每个月用日期对象迭代

所以我有两个ruby​​Date对象,我想每个月迭代它们。例如,如果我有Date.new(2008,12)和Date.new(2009,3),它会生成2008-12、2009-1、2009-2、2009-3(当然是Date对象)。我尝试使用范围,但它每天都会产生。我看到了Date的步骤方法,但是它只允许我传递天数(每个月都有不同的天数)。有人有什么想法吗? 最佳答案 这是非常Ruby的东西:每个月的第一天(Date.new(2008,12)..Date.new(2011,12)).select{|d|d.day==1}它将为您提供范

ruby - 使用 ActiveRecord 在查询对象中转义参数?

给定一个查询对象(不是AR模型)classComplexQueryQUERY=如何方便地转义所有参数?我成功地使用了三种技术,但没有一种是方便的。使用raw_connection(对我而言)返回PG::Conn的实例并调用exec_params。我对此并不满意,因为exec_params需要一组详细的参数来指定数据类型。在我的查询对象中包含ActiveRecord::Sanitization并使用其中一种方便的方法,例如replace_named_bind_variables。我对此不满意,因为replace_named_bind_variables是protected并且我必须使用s

ruby - 为什么我的 BigDecimal 对象初始化时出现意外舍入错误?

在Ruby2.2.0中,为什么:BigDecimal.new(34.13985572755337,9)等于34.0但是BigDecimal.new(34.13985572755338,9)等于34.1398557?请注意,我在64位机器上运行它。 最佳答案 用字符串而不是float初始化一般来说,您无法通过float获得可靠的行为。您错误地使用Float值而不是String值初始化BigDecimals,这在一开始就引入了一些不精确性。例如,在我的64位系统上:float1=34.13985572755337float2=34.13